﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using TheOutLetLibrary.Dominio;

namespace TheOutLetLibrary.Infraestrutura {

    public class AccessItemNotaFiscalDAO: BaseDAO, IGenericDAO<ItemNotaFiscal> {

        public AccessItemNotaFiscalDAO(OleDbTransaction transacao)
            : base(transacao) {
        }

        public int Inclua(ItemNotaFiscal entity) {

            OleDbCommand comando = GetCommand();

            comando.CommandText =
                "INSERT INTO rl_produto_nota_fiscal (" +
                " XID_REMESSA, XID_NOTA_FISCAL, XID_PRODUTO, QT_ENVIADA, " +
                " VL_UNITARIO, VL_TOTAL, PRECO_NF_CONSIGNADO) " +
                " VALUES (" +
                " @XID_REMESSA, @XID_NOTA_FISCAL, @XID_PRODUTO, @QT_ENVIADA, " +
                " @VL_UNITARIO, @VL_TOTAL, @PRECO_NF_CONSIGNADO)";
            comando.Parameters.Add("@XID_REMESSA", OleDbType.Integer).Value = entity.xID_REMESSA;
            comando.Parameters.Add("@ID_NOTA_FISCAL", OleDbType.Integer).Value = entity.XID_NOTA_FISCAL;
            comando.Parameters.Add("@XID_PRODUTO", OleDbType.Integer).Value = entity.XID_PRODUTO;
            comando.Parameters.Add("@QT_ENVIADA", OleDbType.Integer).Value = entity.QT_ENVIADA;
            comando.Parameters.Add("@VL_UNITARIO", OleDbType.Currency).Value = entity.VL_UNITARIO;
            comando.Parameters.Add("@VL_TOTAL", OleDbType.Currency).Value = entity.VL_TOTAL;
            comando.Parameters.Add("@PRECO_NF_CONSIGNADO", OleDbType.Currency).Value = entity.PRECO_NF_CONSIGNADO;
            comando.ExecuteNonQuery();

            comando.CommandText = "SELECT @@IDENTITY";
            entity.xID_PRODUTO_NOTA_FISCAL = Convert.ToInt32(comando.ExecuteScalar());
            return entity.xID_PRODUTO_NOTA_FISCAL;

        }

        public ItemNotaFiscal Ache(int Id) {
            throw new NotImplementedException();
        }
    }
}
